package com.example.demo.entity;

import java.util.ArrayList;
import java.util.List;

public class OrderBasicInfoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public OrderBasicInfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andOrder_idIsNull() {
            addCriterion("order_id is null");
            return (Criteria) this;
        }

        public Criteria andOrder_idIsNotNull() {
            addCriterion("order_id is not null");
            return (Criteria) this;
        }

        public Criteria andOrder_idEqualTo(String value) {
            addCriterion("order_id =", value, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idNotEqualTo(String value) {
            addCriterion("order_id <>", value, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idGreaterThan(String value) {
            addCriterion("order_id >", value, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idGreaterThanOrEqualTo(String value) {
            addCriterion("order_id >=", value, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idLessThan(String value) {
            addCriterion("order_id <", value, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idLessThanOrEqualTo(String value) {
            addCriterion("order_id <=", value, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idLike(String value) {
            addCriterion("order_id like", value, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idNotLike(String value) {
            addCriterion("order_id not like", value, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idIn(List<String> values) {
            addCriterion("order_id in", values, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idNotIn(List<String> values) {
            addCriterion("order_id not in", values, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idBetween(String value1, String value2) {
            addCriterion("order_id between", value1, value2, "order_id");
            return (Criteria) this;
        }

        public Criteria andOrder_idNotBetween(String value1, String value2) {
            addCriterion("order_id not between", value1, value2, "order_id");
            return (Criteria) this;
        }

        public Criteria andSender_idIsNull() {
            addCriterion("sender_id is null");
            return (Criteria) this;
        }

        public Criteria andSender_idIsNotNull() {
            addCriterion("sender_id is not null");
            return (Criteria) this;
        }

        public Criteria andSender_idEqualTo(String value) {
            addCriterion("sender_id =", value, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idNotEqualTo(String value) {
            addCriterion("sender_id <>", value, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idGreaterThan(String value) {
            addCriterion("sender_id >", value, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idGreaterThanOrEqualTo(String value) {
            addCriterion("sender_id >=", value, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idLessThan(String value) {
            addCriterion("sender_id <", value, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idLessThanOrEqualTo(String value) {
            addCriterion("sender_id <=", value, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idLike(String value) {
            addCriterion("sender_id like", value, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idNotLike(String value) {
            addCriterion("sender_id not like", value, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idIn(List<String> values) {
            addCriterion("sender_id in", values, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idNotIn(List<String> values) {
            addCriterion("sender_id not in", values, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idBetween(String value1, String value2) {
            addCriterion("sender_id between", value1, value2, "sender_id");
            return (Criteria) this;
        }

        public Criteria andSender_idNotBetween(String value1, String value2) {
            addCriterion("sender_id not between", value1, value2, "sender_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idIsNull() {
            addCriterion("accept_id is null");
            return (Criteria) this;
        }

        public Criteria andAccept_idIsNotNull() {
            addCriterion("accept_id is not null");
            return (Criteria) this;
        }

        public Criteria andAccept_idEqualTo(String value) {
            addCriterion("accept_id =", value, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idNotEqualTo(String value) {
            addCriterion("accept_id <>", value, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idGreaterThan(String value) {
            addCriterion("accept_id >", value, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idGreaterThanOrEqualTo(String value) {
            addCriterion("accept_id >=", value, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idLessThan(String value) {
            addCriterion("accept_id <", value, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idLessThanOrEqualTo(String value) {
            addCriterion("accept_id <=", value, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idLike(String value) {
            addCriterion("accept_id like", value, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idNotLike(String value) {
            addCriterion("accept_id not like", value, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idIn(List<String> values) {
            addCriterion("accept_id in", values, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idNotIn(List<String> values) {
            addCriterion("accept_id not in", values, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idBetween(String value1, String value2) {
            addCriterion("accept_id between", value1, value2, "accept_id");
            return (Criteria) this;
        }

        public Criteria andAccept_idNotBetween(String value1, String value2) {
            addCriterion("accept_id not between", value1, value2, "accept_id");
            return (Criteria) this;
        }

        public Criteria andOrder_statusIsNull() {
            addCriterion("order_status is null");
            return (Criteria) this;
        }

        public Criteria andOrder_statusIsNotNull() {
            addCriterion("order_status is not null");
            return (Criteria) this;
        }

        public Criteria andOrder_statusEqualTo(Integer value) {
            addCriterion("order_status =", value, "order_status");
            return (Criteria) this;
        }

        public Criteria andOrder_statusNotEqualTo(Integer value) {
            addCriterion("order_status <>", value, "order_status");
            return (Criteria) this;
        }

        public Criteria andOrder_statusGreaterThan(Integer value) {
            addCriterion("order_status >", value, "order_status");
            return (Criteria) this;
        }

        public Criteria andOrder_statusGreaterThanOrEqualTo(Integer value) {
            addCriterion("order_status >=", value, "order_status");
            return (Criteria) this;
        }

        public Criteria andOrder_statusLessThan(Integer value) {
            addCriterion("order_status <", value, "order_status");
            return (Criteria) this;
        }

        public Criteria andOrder_statusLessThanOrEqualTo(Integer value) {
            addCriterion("order_status <=", value, "order_status");
            return (Criteria) this;
        }

        public Criteria andOrder_statusIn(List<Integer> values) {
            addCriterion("order_status in", values, "order_status");
            return (Criteria) this;
        }

        public Criteria andOrder_statusNotIn(List<Integer> values) {
            addCriterion("order_status not in", values, "order_status");
            return (Criteria) this;
        }

        public Criteria andOrder_statusBetween(Integer value1, Integer value2) {
            addCriterion("order_status between", value1, value2, "order_status");
            return (Criteria) this;
        }

        public Criteria andOrder_statusNotBetween(Integer value1, Integer value2) {
            addCriterion("order_status not between", value1, value2, "order_status");
            return (Criteria) this;
        }

        public Criteria andOrder_typeIsNull() {
            addCriterion("order_type is null");
            return (Criteria) this;
        }

        public Criteria andOrder_typeIsNotNull() {
            addCriterion("order_type is not null");
            return (Criteria) this;
        }

        public Criteria andOrder_typeEqualTo(Integer value) {
            addCriterion("order_type =", value, "order_type");
            return (Criteria) this;
        }

        public Criteria andOrder_typeNotEqualTo(Integer value) {
            addCriterion("order_type <>", value, "order_type");
            return (Criteria) this;
        }

        public Criteria andOrder_typeGreaterThan(Integer value) {
            addCriterion("order_type >", value, "order_type");
            return (Criteria) this;
        }

        public Criteria andOrder_typeGreaterThanOrEqualTo(Integer value) {
            addCriterion("order_type >=", value, "order_type");
            return (Criteria) this;
        }

        public Criteria andOrder_typeLessThan(Integer value) {
            addCriterion("order_type <", value, "order_type");
            return (Criteria) this;
        }

        public Criteria andOrder_typeLessThanOrEqualTo(Integer value) {
            addCriterion("order_type <=", value, "order_type");
            return (Criteria) this;
        }

        public Criteria andOrder_typeIn(List<Integer> values) {
            addCriterion("order_type in", values, "order_type");
            return (Criteria) this;
        }

        public Criteria andOrder_typeNotIn(List<Integer> values) {
            addCriterion("order_type not in", values, "order_type");
            return (Criteria) this;
        }

        public Criteria andOrder_typeBetween(Integer value1, Integer value2) {
            addCriterion("order_type between", value1, value2, "order_type");
            return (Criteria) this;
        }

        public Criteria andOrder_typeNotBetween(Integer value1, Integer value2) {
            addCriterion("order_type not between", value1, value2, "order_type");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(Integer value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(Integer value) {
            addCriterion("price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(Integer value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(Integer value) {
            addCriterion("price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(Integer value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(Integer value) {
            addCriterion("price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<Integer> values) {
            addCriterion("price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<Integer> values) {
            addCriterion("price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(Integer value1, Integer value2) {
            addCriterion("price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(Integer value1, Integer value2) {
            addCriterion("price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andGoods_weightIsNull() {
            addCriterion("goods_weight is null");
            return (Criteria) this;
        }

        public Criteria andGoods_weightIsNotNull() {
            addCriterion("goods_weight is not null");
            return (Criteria) this;
        }

        public Criteria andGoods_weightEqualTo(Integer value) {
            addCriterion("goods_weight =", value, "goods_weight");
            return (Criteria) this;
        }

        public Criteria andGoods_weightNotEqualTo(Integer value) {
            addCriterion("goods_weight <>", value, "goods_weight");
            return (Criteria) this;
        }

        public Criteria andGoods_weightGreaterThan(Integer value) {
            addCriterion("goods_weight >", value, "goods_weight");
            return (Criteria) this;
        }

        public Criteria andGoods_weightGreaterThanOrEqualTo(Integer value) {
            addCriterion("goods_weight >=", value, "goods_weight");
            return (Criteria) this;
        }

        public Criteria andGoods_weightLessThan(Integer value) {
            addCriterion("goods_weight <", value, "goods_weight");
            return (Criteria) this;
        }

        public Criteria andGoods_weightLessThanOrEqualTo(Integer value) {
            addCriterion("goods_weight <=", value, "goods_weight");
            return (Criteria) this;
        }

        public Criteria andGoods_weightIn(List<Integer> values) {
            addCriterion("goods_weight in", values, "goods_weight");
            return (Criteria) this;
        }

        public Criteria andGoods_weightNotIn(List<Integer> values) {
            addCriterion("goods_weight not in", values, "goods_weight");
            return (Criteria) this;
        }

        public Criteria andGoods_weightBetween(Integer value1, Integer value2) {
            addCriterion("goods_weight between", value1, value2, "goods_weight");
            return (Criteria) this;
        }

        public Criteria andGoods_weightNotBetween(Integer value1, Integer value2) {
            addCriterion("goods_weight not between", value1, value2, "goods_weight");
            return (Criteria) this;
        }

        public Criteria andGoods_typeIsNull() {
            addCriterion("goods_type is null");
            return (Criteria) this;
        }

        public Criteria andGoods_typeIsNotNull() {
            addCriterion("goods_type is not null");
            return (Criteria) this;
        }

        public Criteria andGoods_typeEqualTo(Integer value) {
            addCriterion("goods_type =", value, "goods_type");
            return (Criteria) this;
        }

        public Criteria andGoods_typeNotEqualTo(Integer value) {
            addCriterion("goods_type <>", value, "goods_type");
            return (Criteria) this;
        }

        public Criteria andGoods_typeGreaterThan(Integer value) {
            addCriterion("goods_type >", value, "goods_type");
            return (Criteria) this;
        }

        public Criteria andGoods_typeGreaterThanOrEqualTo(Integer value) {
            addCriterion("goods_type >=", value, "goods_type");
            return (Criteria) this;
        }

        public Criteria andGoods_typeLessThan(Integer value) {
            addCriterion("goods_type <", value, "goods_type");
            return (Criteria) this;
        }

        public Criteria andGoods_typeLessThanOrEqualTo(Integer value) {
            addCriterion("goods_type <=", value, "goods_type");
            return (Criteria) this;
        }

        public Criteria andGoods_typeIn(List<Integer> values) {
            addCriterion("goods_type in", values, "goods_type");
            return (Criteria) this;
        }

        public Criteria andGoods_typeNotIn(List<Integer> values) {
            addCriterion("goods_type not in", values, "goods_type");
            return (Criteria) this;
        }

        public Criteria andGoods_typeBetween(Integer value1, Integer value2) {
            addCriterion("goods_type between", value1, value2, "goods_type");
            return (Criteria) this;
        }

        public Criteria andGoods_typeNotBetween(Integer value1, Integer value2) {
            addCriterion("goods_type not between", value1, value2, "goods_type");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}